#ifndef SKYID_RESOURCE_MANAGER_H 
#define SKYID_RESOURCE_MANAGER_H

#include <vector>

#include "common.h"
#include "config.h"
#include "vfs.h"
#include "image.h"
#include "texture.h"
#include "sound.h"
#include "music.h"

namespace SkyID 
{

//- ResourceManager -----------------------------------------------------------

namespace ResourceManager
{

typedef std::vector<Object*>       t_resource_array;
typedef t_resource_array::iterator t_resource_iterator;

bool initialize(const Config &config);
void shutdown();

Image*   loadImage  (const char *fileName);
Texture* loadTexture(const char *fileName, GLenum mode = GL_CLAMP);
Sound*   loadSound  (const char *fileName);
Music*   loadMusic  (const char *fileName);

} // ResourceManager

} // namespace SkyID

#endif // SKYID_RESOURCE_MANAGER_H
